package pt.ipleiria.plp.Lixeiras;

import de.enough.polish.io.Serializable;

/**
 * The most basic and abstract Lixeira classs
 * @author Filipe Felisberto e Ricardo Silva
 */
public abstract class Lixeira implements Serializable {

    public final static String ORGANIC = "Class0OrganicWaste";
    public final static String PLASTIC = "Class1Plastic";
    public final static String PAPER = "Class2Paper";
    public final static String METAL = "Class3Metal";
    public final static String GLASS = "Class4Glass";
    public final static String WOOD = "Class5Wood";
    public final static String HIGHVOLUME = "Class6HighVolume";
    public final static String OILS = "Class7Oils";
    public final static String MASONRY = "Class8Masonry";
    public final static String AUTOMOTIVE = "Class9Automotive";
    public final static String HAZARDOUS = "ClassXHazardous";

    public final static String[] CATEGORYS = {ORGANIC,PLASTIC,PAPER,METAL
    ,GLASS,WOOD,HIGHVOLUME,OILS,MASONRY,AUTOMOTIVE,HAZARDOUS};



    private String guid;
    private String title;
    private String state;

    public Lixeira() {
    }

    public Lixeira(String guid, String title, String state) {
        this.guid = guid;
        this.title = title;
        this.state = state;
    }

    /**
     * @return the guid
     */
    public String getGuid() {
        return guid;
    }

    /**
     * @return the title
     */
    public String getTitle() {
        return title;
    }

    /**
     * @return the state
     */
    public String getState() {
        return state;
    }

    /**
     * @param state the state to set
     */
    public void setState(String state) {
        this.state = state;
    }

    /**
     * Deletes the lixeira
     * @return the error message
     */
    public abstract String delete(String app);

    /**
     * @param title the title to set
     */
    protected  void setTitle(String title) {
        this.title = title;
    }

}
